package com.lsl.proxy_pattern.staticproxy.handler;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;


/**
 * 必须实现InvocationHandler接口 完成代理类要做的功能(1.调用目标方法 2.功能增强)
 *
 * @author liusl104
 */
public class MyHandler implements InvocationHandler {
    private Object target = null;

    //动态代理：目标对象是活动的 不是固定的 需要传入进来

    /**
     * 传入是谁就给谁创建动态代理
     *
     * @param target
     */
    public MyHandler(Object target) {
        //给目标对象赋值
        this.target = target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        Object invoke = null;
        //执行目标对象的方法
        invoke = method.invoke(target, null);
        if (invoke != null) {
            System.out.println(invoke.toString());
        }
        System.out.println("不给娇娇送娃娃");
        return invoke;
    }
}
